package br.com.unip.menudroidweb.model;

import java.io.Serializable;
import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name = "produto")
@NamedQueries(value={
		@NamedQuery(name="Produto.buscarPorGrupoProduto", query="select p from Produto p where p.grupoProduto = :grupoProduto")		
})
public class Produto implements Serializable {

	private static final long serialVersionUID = 8836023087332514952L;
	
	public static final String PROCURAR_POR_GRUPO_PRODUTO = "Produto.buscarPorGrupoProduto";

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private int idProduto;

	@OneToOne
	@JoinColumn(name = "idGrupoProduto")
	private GrupoProduto grupoProduto;
	
	@Column(nullable = false, length = 150)
	private String descricao;

	@Column(nullable = true, length = 300)
	private String observacaoCardapio;

	@Column(nullable = false, precision = 10, scale = 2)
	private BigDecimal precoCusto;

	@Column(nullable = false, precision = 10, scale = 2)
	private BigDecimal precoVenda;
	
	public Produto() {
		
	}
	
	public int getIdProduto() {
		return this.idProduto;
	}

	public void setIdProduto(int idProduto) {
		this.idProduto = idProduto;
	}

	public String getDescricao() {
		return this.descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public String getObservacaoCardapio() {
		return this.observacaoCardapio;
	}

	public void setObservacaoCardapio(String observacaoCardapio) {
		this.observacaoCardapio = observacaoCardapio;
	}

	public BigDecimal getPrecoCusto() {
		return this.precoCusto;
	}

	public void setPrecoCusto(BigDecimal precoCusto) {
		this.precoCusto = precoCusto;
	}

	public BigDecimal getPrecoVenda() {
		return this.precoVenda;
	}

	public void setPrecoVenda(BigDecimal precoVenda) {
		this.precoVenda = precoVenda;
	}
	
	public GrupoProduto getGrupoProduto() {
		if (grupoProduto == null) {
			grupoProduto = new GrupoProduto();
			
		}

		return grupoProduto;
	}

	public void setGrupoProduto(GrupoProduto grupoProduto) {
		this.grupoProduto = grupoProduto;
	}

}